What is static and dynamic memory allocation